home *** CD-ROM | disk | FTP | other *** search
- Subject: v17i073: Zoo archive program, Part10/10
- Newsgroups: comp.sources.unix
- Approved: rsalz@uunet.UU.NET
-
- Submitted-by: Rahul Dhesi <bsu-cs!dhesi@iuvax.cs.indiana.edu>
- Posting-number: Volume 17, Issue 73
- Archive-name: zoo2/part10
-
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then unpack
- # it by saving it into a file and typing "sh file". To overwrite existing
- # files, type "sh file -c". You can also feed this as standard input via
- # unshar, or by typing "sh <file", e.g.. If this archive is complete, you
- # will see the following message at the end:
- # "End of archive 10 (of 10)."
- # Wrapped by rsalz@papaya.bbn.com on Thu Feb 2 18:04:06 1989
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f 'zoo.1' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'zoo.1'\"
- else
- echo shar: Extracting \"'zoo.1'\" \(45120 characters\)
- sed "s/^X//" >'zoo.1' <<'END_OF_FILE'
- X.\" @(#) zoo.1 2.44 88/08/25 16:05:30 */
- X.\"
- X.\" For formatting with nroff:
- X.\" tbl zoo.1 | nroff -man | col
- X.\" It should be possible to use troff instead of nroff but I haven't
- X.\" confirmed this. R.D.
- X.\"
- X.TH ZOO 1 "Aug 25, 1988"
- X.AT 3
- X.de sh
- X.br
- X.ne 5
- X.PP
- X\fB\\$1\fR
- X.PP
- X..
- X.SH NAME
- Xzoo \- manipulate archives of files in compressed form
- X.SH SYNOPSIS
- X.B zoo
- X.RB { acfDeghlLPTuUvVx }[ aAcCdEfgImMnNoOpPqSu1:/.@n+\-= ]
- Xarchive [file] ...
- X.sp 0
- X.B zoo \-command
- Xarchive [file] ...
- X.sp 0
- X.B zoo h
- X.SH DESCRIPTION
- X.I Zoo
- Xis used to create and maintain collections of files in compressed form.
- XIt uses a Lempel-Ziv compression algorithm that gives space savings
- Xin the range of 20% to 80% depending on the type of file data.
- X.I Zoo
- Xcan store and selectively extract
- Xmultiple generations of the same file. Data can be recovered
- Xfrom damaged archives by skipping the damaged portion
- Xand locating undamaged data with the help of
- X.I fiz(1).
- X.PP
- XThis documentation is for version 2.01. Changes from previous
- Xversions are described in the section labelled
- X.BR CHANGES .
- X.PP
- XThe command
- X.I zoo
- X.B h
- Xgives summary of commands.
- X.PP
- X.I Zoo
- Xwill not add an archive to itself, nor add the
- Xarchive's backup (with
- X.B .bak
- Xextension to the filename) to the archive.
- X.PP
- X.I Zoo
- Xhas two types of commands: Expert commands, which consist of one command
- Xletter followed by zero or more modifier characters, and Novice commands,
- Xwhich consist of a hyphen (`\-') followed by a command word that may
- Xbe abbreviated. Expert commands are case-sensitive but Novice commands
- Xare not.
- X.PP
- XWhen
- X.I zoo
- Xadds a file to an existing archive, the default action is to maintain
- Xone generation of each file in an archive and
- Xto mark any older generation as deleted. A limit on the number
- Xof generations to save can be specified by the user for
- Xan entire archive, or for each file individually, or both.
- X.I
- XZoo
- Xdeletes a stored copy of an added file if necessary to prevent
- Xthe number of stored generations from exceeding the user-specified limit.
- X.PP
- XDeleted files may be later undeleted.
- XArchives may be packed to recover space occupied by deleted files.
- X.PP
- XAll commands assume that the archive name ends with the characters
- X.B .zoo
- Xunless a different extension is supplied.
- X.PP
- X.B Novice commands
- X.PP
- XNovice commands may be abbreviated to a hyphen followed by at least
- Xone command character. Each Novice command works in two stages.
- XFirst, the command does its intended work. Then, if the result was
- Xthat one or more files were deleted in the specified archive, the
- Xarchive is packed. If packing occurs, the original unpacked archive
- Xis always left behind with an extension of
- X.BR .bak .
- X.PP
- XNo Novice command ever stores the directory prefix of a file.
- X.PP
- XThe Novice commands are as follows.
- X.PP
- X.TP 8
- X.B \-add
- XAdds the specified files to the archive.
- X.PP
- X.TP
- X.B \-freshen
- XAdds a specified file to the archive if and only if an older file by
- Xthe same name already exists in the archive.
- X.PP
- X.TP
- X.B \-delete
- XDeletes the specified files from the archive.
- X.PP
- X.TP
- X.B \-update
- XAdds a specified file to the archive either: if an older file by
- Xthe same name already exists in the archive or: if a file by the
- Xsame name does not already exist in the archive.
- X.PP
- X.TP
- X.B \-extract
- XExtracts the specified files from the archive. If no file is specified
- Xall files are extracted.
- X.PP
- X.TP
- X.B \-move
- XEquivalent to
- X.B \-add
- Xexcept that source files are deleted after addition.
- X.PP
- X.TP
- X.B \-print
- XEquivalent to
- X.B \-extract
- Xexcept that extracted data are sent to standard output.
- X.PP
- X.TP
- X.B \-list
- XGives information about the specified archived files including any
- Xattached comments. If no files are
- Xspecified all files are listed. Deleted files are not listed.
- X.PP
- X.TP
- X.B \-test
- XEquivalent to
- X.B \-extract
- Xexcept that the extracted data are not saved but any errors encountered
- Xare reported.
- X.PP
- X.TP
- X.B \-comment
- XAllows the user to add or update comments attached to archived files.
- XWhen prompted, the user may: type a carriage return to skip the file,
- Xleaving any
- Xcurrent comment unchanged; or type a (possibly null) comment of up
- Xto 65,535 characters terminated
- Xby
- X.B /end
- X(case-insensitive) on
- Xa separate line; or type the end-of-file character (normally control D)
- Xto skip all remaining files.
- X.PP
- X.TP
- X.B \-delete
- XDeletes the specified files.
- X.PP
- X.ne 16
- X.nf
- XThe correspondence between Novice and Expert commands is as follows.
- X.PP
- X.\" Table formatting for troff thanks to Bill Davidsen <uunet!crdos1!davidsen>
- X.sp
- X.TS H
- Xtab(@);
- Xl l l.
- XNovice@@Equivalent
- XCommand@Description@Expert Command
- X_
- X\-add@add files to archive@aP:
- X\-extract@extract files from archive@x
- X\-move@move files to archive@aMP:
- X\-test@test archive integrity@xNd
- X\-print@extract files to standard output@xp
- X\-delete@delete files from archive@DP
- X\-list@list archive contents@VC
- X\-update@add new or newer files@aunP:
- X\-freshen@by add newer files@auP:
- X\-comment@add comments to files@c
- X.TE
- X.fi
- X.PD
- X.PP
- X.sh "Expert commands"
- XThe general format of expert commands is:
- X.PP
- X.I zoo
- X.RB { acDeghlLPTuUvVx }[ aAcCdEfImMnNoOpPqSu1:/.@n+\-= ]
- Xarchive [file] ...
- X.PP
- XThe characters enclosed within {} are commands. Choose any one of
- Xthese. The characters enclosed within [] just to the right of the {}
- Xare modifiers and zero or more of these may immediately follow the
- Xcommand character. All combinations of command and modifier characters
- Xmay not be valid.
- X.PP
- XFiles are added to an archive with the command:
- X.PP
- X.I zoo
- X.RB { au }[ cfIMnPqu:+\- ]
- Xarchive [file] ...
- X.PP
- XCommand characters are:
- X.PP
- X.TP
- X.B a
- XAdd each specified file to archive. Any already-archived copy of
- Xthe file is deleted if this is necessary to avoid exceeding the
- Xuser-specified limit on the number of generations of the
- Xfile to maintain in the archive.
- X.PP
- X.TP
- X.B u
- XDo an update of the archive. A specified file is added to the
- Xarchive only if a copy of it is already in the archive and the copy
- Xbeing added is newer than the copy already in the archive.
- X.PP
- XThe following modifiers are specific to these commands.
- X.PP
- X.TP
- X.B M
- XMove files to archive. This makes
- X.I zoo
- Xdelete (unlink) the original files after they have been added to the
- Xarchive. Files are deleted after addition of all files to the archive is
- Xcomplete and after any requested packing of the archive has been done,
- Xand only if
- X.I zoo
- Xdetected no errors.
- X.PP
- X.TP
- X.B n
- XAdd new files only. A specified file is added only if it isn't
- Xalready in the archive.
- X.PP
- X.TP
- X.B P
- XPack archive after files have been added.
- X.PP
- X.TP
- X.B u
- XApplied to the
- X.B a
- Xcommand, this modifier makes it behave identically to the
- X.B u
- Xcommand.
- X.sp 1
- XThe combination of the
- X.B n
- Xmodifier with the
- X.B u
- Xmodifier or
- X.B u
- Xcommand causes addition of a file to the archive either
- Xif the file is not already in the archive,
- X.I or
- Xif the file is already in the archive but the archived
- Xcopy is older than the copy being added.
- X.PP
- X.TP
- X.B :
- XDo not store directory names. In the absence of this modifier
- X.I zoo
- Xstores the full pathname of each archived file.
- X.PP
- X.TP
- X.B I
- XRead filenames to be archived from standard input.
- X.I Zoo
- Xwill read
- Xits standard input and assume that each line of text contains a
- Xfilename. Under AmigaDOS and the **IX family, the entire line is used.
- XUnder MS-DOS and VAX/VMS,
- X.I zoo
- Xassumes that the filename is terminated by a blank, tab,
- Xor newline; thus it is permissible for the line of text to
- Xcontain more than one field separated by white space, and only the
- Xfirst field will be used.
- X.sp 1
- XUnder the **IX family of operating systems,
- X.I zoo
- Xcan be used as follows in a pipeline:
- X.IP "" 10
- Xfind . \-print |
- X.I zoo
- XaI sources
- X.IP "" 5
- X.sp 1
- XIf the
- X.B I
- Xmodifier is specified, no filenames may be supplied on the command
- Xline itself.
- X.PP
- X.TP
- X.BR + , \-
- XThese modifiers take effect only if the
- X.B a
- Xcommand results in the creation of a new archive.
- X.B +
- Xcauses any newly-created archive to have
- Xgenerations enabled.
- X.B \-
- Xis provided for symmetry and causes any newly-created
- Xarchive to have generations disabled; this is also the
- Xdefault if neither
- X.B +
- Xnor
- X.B \-
- Xis specified.
- X.PP
- XFiles are extracted from an archive with the command:
- X.sp 1
- X.I zoo
- X.RB { ex }[ dNoOpqS./@ ]
- Xarchive [file] ...
- X.PP
- XThe
- X.B e
- Xand
- X.B x
- Xcommands are synonymous. If no file was specified, all files are
- Xextracted from the archive.
- X.PP
- XThe following modifiers are specific to the e and x commands:
- X.PP
- X.TP
- X.B N
- XDo not save extracted data but report any errors encountered.
- X.PP
- X.TP
- X.B O
- XOverwrite files. Normally, if a file being extracted would
- Xoverwrite an already-existing file of the same name,
- X.I zoo
- Xasks you if
- Xyou really want to overwrite it. You may answer the question with
- X`y', which means yes, overwrite; or `n', which means no, don't
- Xoverwrite; or `a', which means assume the answer is `y' for this
- Xand all subsequent files. The
- X.B O
- Xmodifier makes
- X.I zoo
- Xassume that files may always be overwritten. Neither
- Xanswering the question affirmatively nor using
- X.B O
- Xalone will cause read-only files to be overwritten.
- X.sp 1
- XOn **IX systems, however, doubling this modifier as
- X.B OO
- Xwill force
- X.I zoo
- Xto unconditionally overwrite any read-protected files
- Xwith extracted files if it can do so.
- X.sp 1
- XThe
- X.B O, N,
- Xand
- X.B p
- Xmodifiers are mutually exclusive.
- X.PP
- X.TP
- X.B S
- XSupersede newer files on disk with older extracted
- Xfiles.
- XUnless this modifier is used,
- X.I zoo
- Xwill not overwrite a newer existing file with an
- Xolder extracted file.
- X.PP
- X.TP
- X.B o
- XThis is equivalent to the
- X.B O
- Xmodifier if and only if it
- Xis given at least twice. It is otherwise ignored.
- X.PP
- X.TP
- X.B p
- XPipe extracted data to standard output. Error messages are piped to
- Xstandard output as well. However, if a bad CRC is detected, an error
- Xmessage is sent both to standard error and to standard output.
- X.PP
- X.TP
- X.B /
- XExtract to original pathname. Any needed directories must already
- Xexist. In the absence of this modifier all files are extracted into
- Xthe current directory. If this modifier is doubled as
- X.BR // ,
- Xrequired directories need not exist and are created if necessary.
- X.PP
- XThe management of multiple generations of archived files
- Xis done with the commands:
- X.sp 1
- X.B zoo
- X\fBgl\fR[\fR\fBAq\fR]{\fR\fB+\-=\fR}\fR\fBnumber
- X.B archive files ..
- X.sp 0
- X.B zoo
- X\fBgc\fR[\fR\fBq\fR]{\fR\fB+\-=\fR}\fR\fBnumber
- X.B archive files ..
- X.sp 0
- X.B zoo
- X.BR gA [ q ] "\- archive"
- X.sp 0
- X.B zoo
- X.BR gA [ q ] "+ archive"
- X.sp 1
- XThe first form,
- X.BR gl ,
- Xadjusts the generation limit of selected files by the specified
- Xvalue. If the form
- X.B "=n"
- Xis used, where n is a decimal number, this sets the generation
- Xlimit to the
- Xspecified value. If
- X.B +
- Xor
- X.B \-
- Xare used in placed of
- X.B =
- Xthe effect is to increment or decrement the generation limit
- Xby the specified value. For example, the command
- X.IP "" 5
- X.B "zoo gl=5 xyz :"
- X.IP "" 0
- Xsets the generation limit of each file in the archive
- X.B xyz.zoo
- Xto a value of 5. The command
- X.IP "" 5
- X.B "zoo gl\-3 xyz :"
- X.IP "" 0
- Xdecrements the generation limit of each file in the archive
- Xto 3 less than it currently is.
- X.sp 1
- XIf the
- X.B A
- Xmodifier is used, the archive-wide generation limit is
- Xadjusted instead.
- X.sp 1
- XThe number of generations of a file maintained in an archive
- Xis limited by the file generation
- Xlimit, or the archive generation limit, whichever is lower.
- XAs a special case, a generation limit of 0 stands for
- Xno limit. Thus the default file generation limit of
- X0 and archive generation limit of 1 limits the number
- Xof generations of each file in a newly-created archive to one.
- X.sp 1
- XThe generation limit specified should be in the range
- X0 through 15; any higher numbers are interpreted modulo
- X16.
- X.PP
- XThe second form of the command, using
- X.BR gc ,
- Xadjusts the generation count of selected files. Each file
- Xhas a generation count of 1 when it is first added to
- Xan archive. Each time a file by the same name is added
- Xagain to an archive, it receives a generation count
- Xthat is one higher than the highest generation count
- Xof the archived copy of the file. The permissible
- Xrange of generation counts is 1 through 65535.
- XIf repeated manipulations
- Xof an archive result in files having very high generation
- Xcounts, they may be set back to lower numbers with the
- X.B gc
- Xcommand. The syntax of the command is analogous to
- Xthe syntax of the
- X.B gl
- Xcommand, except that the
- X.B A
- Xmodifier is not applicable to the
- X.B gc
- Xcommand.
- X.PP
- XThe third form,
- X.BR "gA\-" ,
- Xdisables generations in an archive. Generations are
- Xoff when an archive is first created, but may be enabled
- Xwith the fourth form of the command,
- X.BR "gA+" .
- XWhen generations are disabled in an archive,
- X.I zoo
- Xwill not display generation numbers in archive listings
- Xor maintain multiple generations. Generations can
- Xbe re-enabled at any time, though manipulation
- Xof an archive with repeated interspersed
- X.B "gA\-"
- Xand
- X.B "gA+"
- Xcommands may result in an archive whose
- Xbehavior is not easily understandable.
- X.PP
- XArchived files are listed with the command:
- X.sp 1
- X.I zoo
- X.RB { lLvV }[ aAcCdfgmqvV@/1+\- ]
- X.RB archive[ .zoo ]
- X[file] ...
- X.PP
- X.TP
- X.B l
- XInformation presented includes the date and time of each file, its
- Xoriginal and current (compressed) sizes, and the percentage
- Xsize decrease due to compression (labelled CF or compression factor).
- XIf a file was added to the archive in a different timezone,
- Xthe difference between timezones is shown in hours as a signed
- Xnumber. As an example, if the difference is listed as +3, this
- Xmeans that the file was added to the archive in a timezone
- Xthat is 3 hours west of the current timezone. The file time
- Xlisted is, however, always the original timestamp of the
- Xarchived file, as observed by the user who archived the file,
- Xexpressed as that user's local time. (Timezone information
- Xis stored and displayed only if the underlying operating
- Xsystem knows about timezones.)
- X.sp 1
- XIf no filename is supplied all files are listed except deleted files.
- X.sp 1
- X.I Zoo
- Xselects which generation(s) of a file to list according to
- Xthe following algorithm.
- X.sp 1
- XIf no filename is supplied, only the latest generation of
- Xeach file is listed. If any filenames are specified,
- Xand a generation is specified for an argument, only
- Xthe requested generation is listed. If a filename
- Xis specified ending with the generation character
- X(`:' or `;'), all generations of that file
- Xare listed. Thus a filename argument of the form
- X.B zoo.c
- Xwill cause only the latest generation of
- X.I zoo.c
- Xto be listed; an argument of the form
- X.B "zoo.c:4"
- Xwill cause generation 4 of
- X.I zoo.c
- Xto be listed; and an argument of the form
- X.B "zoo.c:"
- Xor
- X.B "zoo.c:*"
- Xwill cause all generations of
- X.I zoo.c
- Xto be listed.
- X.PP
- X.TP
- X.B L
- XThis is similar to the
- X.B l
- Xcommand except that all supplied arguments must be archives and all
- Xnon-deleted generations of all files in each archive appear in
- Xthe listing.
- X.sp 1
- XOn **IX systems, on which the shell expands arguments, if multiple
- Xarchives are to be listed, the
- X.B L
- Xcommand must be used. On other systems (VAX/VMS, AmigaDOS,
- XMSDOS) on which wildcard expansion is done internally by
- X.I zoo,
- Xwildcards may be used in the archive name, and a multiple
- Xarchive listing obtained, using the
- X.B l
- Xcommand.
- X.PP
- X.TP
- X.B v
- XThis causes any comment attached to the archive to
- Xbe listed in addition to the other information.
- X.PP
- X.TP
- X.B V
- XThis causes any comment attached to the archive and also any
- Xcomment attached to each file to be listed.
- X.sp 1
- XBoth the
- X.B V
- Xand
- X.B v
- Xcommand characters can also be used as modifiers to
- Xthe
- X.B l
- Xand
- X.B L
- Xcommands.
- X.PP
- XIn addition to the general modifiers described later, the following
- Xmodifiers can be applied to the archive list commands.
- X.PP
- X.TP
- X.B a
- XThis gives a single-line format containing both each filename and the
- Xname of the archive, sorted by archive name. It is especially useful
- Xwith the
- X.B L
- Xcommand, since the result can be further sorted on any field to give a
- Xmaster listing of the entire contents of a set of archives.
- X.PP
- X.TP
- X.B A
- XThis causes any comment attached to the archive to be listed.
- X.PP
- X.TP
- X.B g
- XThis modifier causes file generation information to
- Xbe listed about the archive. For each file listed, the
- Xuser-specified generation limit, if any, is listed. For
- Xexample, `3g' for a file means that the user wants no more
- Xthan three generations of the file to be kept. In archives
- Xcreated by older versions of
- X.I zoo,
- Xthe listing will show `\-g',
- Xmeaning that no generation information is kept and multiple
- Xgenerations of the file are not being maintained.
- X.sp 1
- XIn addition to the generation information for each file,
- Xthe archive-wide generation limit, if any, is shown
- Xat the end of the listing. If generations have been
- Xdisabled by the user, this is so indicated, for example:
- X.IP "" 10
- XArchive generation limit is 3 (generations off).
- X.IP "" 5
- XFor more information about generations see the
- Xdescription of the
- X.B g
- Xcommand.
- X.PP
- X.TP
- X.B m
- XThis modifier is currently applicable to **IX systems only.
- XIt causes the mode bits (file protection code) of each
- Xfile to be listed as a three-digit octal number. Currently
- X.I zoo
- Xpreserves only the lowest nine mode bits. Their meanings
- Xare as described in the **IX documentation for the
- X.I chmod(1)
- Xcommand.
- X.PP
- X.TP
- X.B C
- XThis modifier causes the stored cyclic redundancy code (CRC)
- Xfor each archived file to be shown as a four-digit hexadecimal
- Xnumber.
- X.PP
- X.TP
- X.B 1
- XThis forces one filename to be listed per line. It is most useful
- Xin combination with the
- X.B f
- Xmodifier.
- X.TP
- X.B /
- XThis forces any directory name to be always listed, even in
- Xfast columnized listings that do not normally include any
- Xdirectory names.
- X.PP
- X.TP
- X.BR + , \-
- XThe
- X.B \-
- Xmodifier causes trailing generation numbers to be
- Xomitted from filenames.
- XThe
- X.B +
- Xmodifier causes the trailing generation numbers to be
- Xshown, which is also the default if neither
- X.B \-
- Xnor
- X.B +
- Xis specified.
- X.PP
- XFiles may be deleted and undeleted from an archive with the following
- Xcommands:
- X.sp 1
- X.I zoo
- X.RB { DU }[ Pq1 ]
- Xarchive file ...
- X.PP
- XThe
- X.B D
- Xcommand deletes the specified files and the
- X.B U
- Xcommand undeletes the specified files. The
- X.B 1
- Xmodifier (the digit one, not the letter ell) forces deletion or undeletion
- Xof at most one file. If multiple instances of the same file exist
- Xin an archive, use of the
- X.B 1
- Xmodifier may allow selective extraction of one of these.
- X.PP
- XComments may be added to an archive with the command:
- X.sp 1
- X.I zoo
- X.BR c [ A ]
- Xarchive
- X.PP
- XWithout the modifier
- X.BR A ,
- Xthis behaves identically to the
- X.B \-comment
- Xcommand. With the modifier
- X.BR A ,
- Xthe command serves to add or update the comment attached
- Xto the archive as a whole. This comment may be listed with
- Xthe
- X.B lA, LA, v, and V
- Xcommands. Applying the
- X.B cA
- Xcommand to an archive that was created with an older version
- Xof
- X.I zoo
- Xwill result in an error message requesting that the user
- Xfirst pack the archive with the
- X.B P
- Xcommand. This reorganizes the archive and creates space
- Xfor the archive comment.
- X.PP
- XThe timestamp of an archive may be adjusted with the command:
- X.sp 1
- X.I zoo
- X.BR T [ q ]
- Xarchive
- X.PP
- X.I Zoo
- Xnormally attempts to maintain the timestamp of an archive to reflect
- Xthe age of the newest file stored in it. Should the timestamp ever be
- Xincorrect it can be fixed with the
- X.B T
- Xcommand.
- X.PP
- XAn archive may be packed with the command:
- X.sp 1
- X.I zoo
- X.BR P [ EPq ]
- Xarchive
- X.PP
- XIf the backup copy of the archive already exists,
- X.I zoo
- Xwill refuse to
- Xpack the archive unless the
- X.B P
- Xmodifier is also given. The
- X.B E
- Xmodifier causes
- X.I zoo
- Xnot to save a backup copy of the original archive
- Xafter packing. A unique temporary file in the current directory
- Xis used to initially hold the packed archive. This file will be
- Xleft behind if packing is interrupted or if for some reason this
- Xfile cannot be renamed to the name of the original archive when
- Xpacking is complete.
- X.PP
- XPacking removes any garbage data appended to an archive because of
- XXmodem file transfer and also recovers any wasted space
- Xremaining in an archive that has been frequently updated
- Xor in which comments were replaced. Packing also updates
- Xthe format of any archive that was created by an older
- Xversion of
- X.I zoo
- Xso that newer features (e.g. archive-wide generation limit,
- Xarchive comment) become fully available.
- X.PP
- X.I Zoo
- Xcan act as a pure compression or uncompression filter,
- Xreading from standard input and writing to standard output.
- XThis is achieved with the command:
- X.sp 1
- X.I zoo
- X.BR f { cu }
- X.PP
- Xwhere
- X.B c
- Xspecifies compression and
- X.B u
- Xspecifies uncompression. A CRC value is used to check the
- Xintegrity of the data. The compressed data stream has
- Xno internal archive structure and contains multiple
- Xfiles only if the input data stream was already structured,
- Xas might be obtained, for example, from
- X.I tar
- Xor
- X.I cpio.
- X.PP
- X Modem transfers can be speeded up with these commands:
- X.IP "" 10
- X.I zoo
- X.B fc
- X< file |
- X.I sz ...
- X.I rz |
- X.I zoo
- X.B fu
- X> file
- X.IP "" 5
- X.PP
- X.sh "General modifiers"
- X.PP
- XThe following modifiers are applicable to several commands:
- X.PP
- X.TP
- X.B c
- XApplied to the
- X.B a
- Xand
- X.B u
- Xcommands, this causes the user to be prompted
- Xfor a comment for each file added to the archive. If the file
- Xbeing added has replaced, or is a newer generation of,
- Xa file already in the archive, any comment
- Xattached to that file is shown to the user and becomes
- Xattached to the newly-added file unless the user changes it.
- XPossible user responses are as described for the
- X.B \-comment
- Xcommand. Applied to the archive list command
- X.BR l ,
- Xthe
- X.B c
- Xmodifier causes the listing of any comments attached to archived files.
- X.PP
- X.TP
- X.BR \ .
- XIn conjunction with
- X.B /
- Xor
- X.B //
- Xthis modifier causes any extracted pathname beginning with `/' to be
- Xinterpreted relative to the current directory, resulting in
- Xthe possible creation of a subtree rooted at the current directory.
- XIn conjunction with the command
- X.B P
- Xthe
- X.B .
- Xmodifier causes the packed archive to be created in the current
- Xdirectory. This is intended to allow users with limited disk
- Xspace but multiple disk drives to pack large archives.
- X.PP
- X.TP
- X.B d
- XMost commands that act on an archive act only on files that are
- Xnot deleted. The
- X.B d
- Xmodifier makes commands act on both normal and deleted files. If
- Xdoubled as
- X.BR dd ,
- Xthis modifier forces selection only of deleted files.
- X.PP
- X.TP
- X.B f
- XApplied to the
- X.B a
- Xand
- X.B u
- Xcommands, the
- X.B f
- Xmodifier causes fast archiving by adding files without compression.
- XApplied to
- X.B l
- Xit causes a fast listing of files in a multicolumn format.
- X.PP
- X.TP
- X.B q
- XBe quiet. Normally
- X.I zoo
- Xlists the name of each file and what action it is performing. The
- X.B q
- Xmodifier suppresses this. When files are being extracted to standard
- Xoutput, the
- X.B q
- Xmodifier suppresses the header preceding each file. When archive
- Xcontents are being listed, this modifier suppresses any header
- Xand trailer. When a fast columnized listing is being obtained,
- Xthis modifier causes all output to be combined into a single set
- Xof filenames for all archives being listed.
- X.sp 1
- XWhen doubled as
- X.BR qq ,
- Xthis modifier suppresses WARNING messages, and when tripled as
- X.BR qqq ,
- XERROR messages are suppressed too. FATAL error messages
- Xare never suppressed.
- X.PP
- X.sh "Recovering data from damaged archives"
- XThe
- X.B @
- Xmodifier allows the user to specify the exact position in
- Xan archive where
- X.I zoo
- Xshould extract a file from, allowing damaged portions
- Xof an archive to be skipped.
- XThis modifier must be immediately followed by a decimal
- Xinteger without intervening spaces, and possibly by
- Xa comma and another decimal integer, giving a command of
- Xthe form
- X.B l@m
- Xor
- X.B l@m,n
- X(to list archive contents)
- Xor
- X.B x@m
- Xor
- X.B x@m,n
- X(to extract files from an archive). Listing or extraction
- Xbegin at position
- X.B m
- Xin the archive.
- XThe value of
- X.B m
- Xmust be the position within the archive of an
- Xundamaged directory entry. This position is usually obtained from
- X.I fiz(1)
- Xversion 2.0 or later.
- X.sp 1
- XIf damage to the archive has shortened or lengthened it, all
- Xpositions within the archive may be changed by some constant amount.
- XTo compensate for this, the value of
- X.B n
- Xmay be specified. This value is also usually obtained from
- X.I fiz(1).
- XIt should be the position in the archive of the file data
- Xcorresponding to the directory entry that has been specified
- Xwith
- X.BR m .
- XThus if the command
- X.B x@456,575
- Xis given, it will cause the first 456 bytes of the archive to
- Xbe skipped and extraction to begin at offset 456; in addition,
- X.I zoo
- Xwill attempt to extract the file data from position 575 in the archive
- Xinstead of the value that is found in the directory entry
- Xread from the archive.
- XFor example, here is some of the output of
- X.I fiz
- Xwhen it acts on a damaged
- X.I zoo
- Xarchive:
- X.sp 1
- X.nf
- X****************
- X 2526: DIR [changes] ==> 95
- X 2587: DATA
- X****************
- X 3909: DIR [copyrite] ==> 1478
- X 3970: DATA
- X 4769: DATA
- X****************
- X.fi
- X.sp 1
- XIn such output,
- X.B DIR
- Xindicates where
- X.I fiz
- Xfound a directory entry in the archive, and
- X.B DATA
- Xindicates where
- X.I fiz
- Xfound file data in the archive. Filenames located by
- X.I fiz
- Xare enclosed in square brackets, and the notation
- X"==> 95" indicates that the directory entry found by
- X.I fiz
- Xat position 2526 has a file data pointer to
- Xposition 95. (This is clearly wrong,
- Xsince file data always occur in an archive
- X.I after
- Xtheir directory entry.) In actuality,
- X.I fiz
- Xfound file data at positions 2587, 3970, and
- X4769. Since
- X.I fiz
- Xfound only two directory entries, and each directory entry
- Xcorresponds to one
- Xfile, one of the file data positions is an artifact.
- X.PP
- X.sp 1
- XIn this case, commands to try giving to
- X.I zoo
- Xmight be
- X.B x@2526,2587
- X(extract beginning at position 2526, and get file data
- Xfrom position 2587),
- X.B x@3090,3970
- X(extract at 3090, get data from 3970)
- Xand
- X.B x@3909,4769
- X(extract at 3909, get data from 4769). Once a correctly-matched
- Xdirectory entry/file data pair is found,
- X.I zoo
- Xwill in most cases synchronize with and correctly extract all files
- Xsubsequently found in the archive. Trial and error should allow
- Xall undamaged files to be extracted.
- XAlso note that self-extracting archives created using
- X.I sez
- X(the Self-Extracting
- X.I Zoo
- Xutility for MS-DOS), which are normally executed on an MS-DOS
- Xsystem for extraction, can
- Xbe extracted on non-MSDOS systems using
- X.I "zoo's"
- Xdamaged-archive recovery method using the
- X.B @
- Xmodifier.
- X.PP
- X.sh "Wildcard handling"
- XUnder the **IX family of operating systems,
- Xthe shell normally expands wildcards to a list of matching files. Wildcards
- Xthat are meant to match files within an archive must therefore
- Xbe escaped or quoted. When selecting files to be added to an archive,
- Xwildcard conventions are as defined for the shell. When selecting
- Xfiles from within an archive, wildcard handling is done by
- X.I zoo
- Xas described below.
- X.PP
- XUnder MS-DOS and AmigaDOS, quoting of wildcards is not needed.
- XAll wildcard expansion of filenames is done by
- X.I zoo,
- Xand wildcards inside directory names are expanded only
- Xwhen listing or extracting files but not when adding them.
- X.PP
- XThe wildcard syntax interpreted by
- X.I zoo
- Xis limited to the following characters.
- X.PP
- X.TP
- X.B *
- XMatches any sequence of zero or more characters.
- X.PP
- X.TP
- X.B \?
- XMatches any single character.
- X.sp 1
- XArbitrary combinations of
- X.B *
- Xand
- X.B ?
- Xare allowed.
- X.PP
- X.TP
- X.B /
- XIf a supplied pattern contains a slash anywhere in it, then the
- Xslash separating any directory prefix from the filename must be
- Xmatched explicitly. If a supplied pattern contains
- Xno slashes, the match is selective only on the filename.
- X.PP
- X.TP
- X.B c\-c
- XTwo characters separated by a hyphen specify a character range. All
- Xfilenames beginning with those characters will match. The character
- Xrange is meaningful only by itself or preceded by a directory name.
- XIt is not specially interpreted if it is part of a filename.
- X.PP
- X.TP
- X.B ": and ;"
- XThese characters are used to separate a filename from a generation
- Xnumber and are used when selecting specific generations
- Xof archived files. If no generation character is used, the
- Xfilename specified matches only the latest generation of the
- Xfile. If the generation character is specified,
- Xthe filename and the generation are matched independently by
- X.I "zoo's"
- Xwildcard mechanism. If no generation is
- Xspecified following the
- X.B ":"
- Xor
- X.B ";"
- Xcharacter, all generations of that file will match. As
- Xa special case, a generation number of
- X.B 0
- Xmatches only the latest generation of a file, while
- X.B ^0
- Xmatches all generations of a file except the
- Xlatest one. If no
- Xfilename is specified preceding the generation character,
- Xall filenames will match. As a corollary, the generation
- Xcharacter by itself matches all generations of all files.
- X.PP
- XMS-DOS users should note that
- X.I zoo
- Xdoes not treat the dot as
- Xa special character, and it does not ignore characters following
- Xan asterisk. Thus
- X.B *
- Xmatches all filenames;
- X.B *.*
- Xmatches
- Xfilenames containing a dot;
- X.B *_*
- Xmatches filenames
- Xcontaining an underscore; and
- X.B *z
- Xmatches all filenames
- Xthat end with the character
- X.BR z ,
- Xwhether or not they contain
- Xa dot.
- X.PP
- X.sh "Usage hints"
- XThe Novice command set in
- X.I zoo
- Xis meant to provide an interface with functionality and
- Xformat that will be familiar to users of other similar
- Xarchive utilities. In keeping with this objective,
- Xthe Novice commands do not maintain or use any subdirectory
- Xinformation or allow the use of
- X.I "zoo's"
- Xability to maintain multiple generations of files.
- XFor this reason, users should switch to exclusively
- Xusing the Expert commands as soon as possible.
- X.PP
- XAlthough the Expert command set is quite large, it should
- Xbe noted that in almost every case, all legal modifiers
- Xfor a command are fully orthogonal. This means that the
- Xuser can select any combination of modifiers, and when they
- Xact together, they will have the intuitively obvious effect.
- XThus the user need only memorize what each modifier does,
- Xand then can combine them as needed without much further thought.
- X.PP
- XFor example, consider the
- X.B a
- Xcommand which is used to add files to an archive. By itself,
- Xit simply adds the specified files. To cause only already-archived
- Xfiles to be updated if their disk copies have been modified,
- Xit is only necessary to add the
- X.B u
- Xmodifier, making the command
- X.BR au .
- XTo cause only new files (i.e., files not already in
- Xthe archive) to be added, the
- X.B n
- Xmodifier is used to create the command
- X.BR an .
- XTo cause
- X.I both
- Xalready-archived files to be updated and new files
- Xto be added, the
- X.B u
- Xand
- X.B n
- Xmodifiers can be used together, giving the command
- X.BR aun .
- XSince the order of modifiers is not significant, the
- Xcommand could also be
- X.BR anu .
- X.PP
- XFurther, the
- X.B c
- Xmodifier can be used to cause
- X.I zoo
- Xto prompt the user for a comment to attach to
- Xeach file added. And the
- X.B f
- Xmodifier can cause fast addition (addition without
- Xcompression). It should be obvious then that the
- Xcommand
- X.B auncf
- Xwill cause
- X.I zoo
- Xto update already-archived files, add new files,
- Xprompt the user for comments, and do the addition
- Xof files without any compression. Furthermore,
- Xif the user wishes to move files to the archive,
- Xi.e., delete the disk copy of each file after it
- Xis added to the archive, it is only necessary to add
- Xthe
- X.B M
- Xmodifier to the command, so it becomes
- X.BR auncfM .
- XAnd if the user also wishes to cause the archive
- Xto be packed as part of the command, thus recovering
- Xspace from any files that are replaced, the command
- Xcan be modified to
- X.B auncfMP
- Xby adding the
- X.B P
- Xmodifier that causes packing.
- X.PP
- XSimilarly, the archive listing commands can be built up
- Xby combining modifiers. The basic command to list the
- Xcontents of an archive is
- X.BR l .
- XIf the user wants a fast columnized listing, the
- X.B f
- Xmodifier can be added to give the
- X.B lf
- Xcommand. Since this listing will have a header giving
- Xthe archive name and a trailer summarizing interesting
- Xinformation about the archive, such as the number
- Xof deleted files, the user may wish to "quieten" the
- Xlisting by suppressing these; the relevant modifier
- Xis
- X.BR q ,
- Xwhich when added to the command gives
- X.BR lfq .
- XIf the user wishes to see the **IX mode (file protection)
- Xbits, and also information about multiple generations,
- Xthe modifiers
- X.B m
- X(show mode bits) and
- X.B g
- X(show generation information) can be added, giving the
- Xcommand
- X.BR lfqmg .
- XIf the user also wishes to see an attached archive
- Xcomment, the modifier
- X.B A
- X(for archive) will serve. Thus the command
- X.B lfqmgA
- Xwill give a fast columnized listing of the archive,
- Xsuppressing any header and trailer, showing mode bits
- Xand generation information, and showing any comment
- Xattached to the archive as a whole. If in addition
- Xindividual comments attached to files are also needed,
- Xsimply append the
- X.B c
- Xmodifier to the command, making it
- X.BR lfqmgAc .
- XThe above command will not show any deleted files,
- Xhowever; to see them, use the
- X.B d
- Xmodifier, making the command
- X.B lfqmgAcd
- X(or double it as in
- X.B lfqmgAcdd
- Xif
- X.I only
- Xthe deleted files are to be listed). And if the user
- Xalso wishes to see the CRC value for each file being listed,
- Xthe modifier
- X.B C
- Xwill do this, as in the command
- X.BR lfqmgAcdC ,
- Xwhich gives a fast columnized listing of all files, including
- Xdeleted files, showing any archive comment and file comments,
- Xand file protection codes and generation information, as
- Xwell as the CRC value of each file.
- X.PP
- XNote that the above command
- X.B lfqmgAcdC
- Xcould also be abbreviated to
- X.B VfqmgdC
- Xbecause the command
- X.B V
- Xis shorthand for
- X.B lcA
- X(archive listing with all comments shown).
- XSimilarly the command
- X.B v
- Xis shorthand for
- X.BR lA
- X(archive listing with archive comment shown). Both
- X.B V
- Xand
- X.B v
- Xcan be used as modifiers to any of the other archive
- Xlisting commands.
- X.PP
- X.sh "Generations"
- XBy default,
- X.I zoo
- Xassumes that only the latest generation of a specified file
- Xis needed. If generations other than the latest one
- Xneed to be selected, this may be done by specifying them
- Xin the filename. For example, the name
- X.B stdio.h
- Xwould normally refer to the latest generation of
- Xthe file
- X.I stdio.h
- Xstored in a
- X.I zoo
- Xarchive. To get an archive listing showing all
- Xgenerations of
- X.I stdio.h
- Xin the archive, the specification
- X.B stdio.h:*
- Xcould be used (enclosed in single quotes if necessary
- Xto protect the wildcard character
- X.B *
- Xfrom the shell). Also,
- X.B stdio.h:0
- Xselects only the latest generation of
- X.I stdio.h,
- Xwhile
- X.B stdio.h:^0
- Xselects all generations except the latest one. The
- X.B :
- Xcharacter here separates the filename from the generation
- Xnumber, and the character
- X.B *
- Xis a wildcard that matches all possible generations.
- XFor convenience, the generation itself may be left
- Xout, so that the name
- X.B stdio.h:
- X(with the
- X.B :
- Xbut without a generation number or a wildcard) matches
- Xall generations exactly as
- X.B stdio.h:*
- Xdoes.
- X.PP
- XIf a generation is specified but no filename is present,
- Xas in
- X.BR :5 ,
- X.BR :* ,
- Xor just
- X.BR : ,
- Xall filenames of the specified generation will be selected.
- XThus
- X.B :5
- Xselects generation 5 of each file, and
- X.B :*
- Xand
- X.B :
- Xselect all generations of all files.
- X.PP
- XIt is important to note that
- X.I "zoo's"
- Xidea of the latest generation of a file is not based
- Xupon searching the entire archive. Instead, whenever
- X.I zoo
- Xadds a file to an archive, it is marked
- Xas being the latest generation. Thus, if
- Xthe latest generation of a file is deleted, then
- X.I no
- Xgeneration of that file is considered the latest any
- Xmore. This can be surprising to the user. For
- Xexample, if an archive already contains the file
- X.I stdio.h:5
- Xand a new copy is added, appearing in the archive
- Xlisting as
- X.I stdio.h:6,
- Xand then
- X.I stdio.h:6
- Xis deleted, the remaining copy
- X.I stdio.h:5
- Xwill no longer be considered to be the latest generation,
- Xand the file
- X.I stdio.h:5,
- Xeven if undeleted, will no longer appear in an archive listing
- Xunless generation 5 (or every generation) is specifically requested.
- XThis behavior will likely be improved in future releases of
- X.I zoo.
- X.SH FILES
- XxXXXXXX \- temporary file used during packing
- X.sp 0
- X.RB archive_name. bak
- X\- backup of archive
- X.SH "SEE ALSO"
- Xcompress(1), fiz(1)
- X.SH BUGS
- XWhen files are being added to an archive on a non-MS-DOS system, it
- Xis possible for
- X.I zoo
- Xto fail to detect a full disk and hence create an invalid archive.
- XThis bug will be fixed in a future release.
- X.PP
- XFiles with generation counts that wrap around from 65535 to 1
- Xare not currently handled correctly. If a file's generation
- Xcount reaches a value close to 65535, it should be manually
- Xset back down to a low number. This may be easily done
- Xwith a command such as
- X.BR gc\-65000 ,
- Xwhich subtracts 65000 from the generation count of each
- Xspecified file. This problem will be fixed in a
- Xfuture release.
- X.PP
- XAlthough
- X.I zoo
- Xon **IX systems preserves the lowest nine mode bits of
- Xregular files, it does not currently do the same for directories.
- X.PP
- XCurrently
- X.I "zoo's"
- Xhandling of the characters
- X.B :
- Xand
- X.B ;
- Xin filenames is not robust, because it interprets these
- Xto separate a filename from a generation number. A
- Xquoting mechanism will eventually be implemented.
- X.PP
- XStandard input cannot be archived nor can a created archive be sent
- Xto standard output. Spurious error messages may appear if the
- Xfilename of an archive is too long.
- X.PP
- XSince
- X.I zoo
- Xnever archives any file with the same name as the archive or its
- Xbackup (regardless of any path prefixes), care should be taken
- Xto make sure that a file to be archived does not coincidentally have
- Xthe same name as the archive it is being added to.
- XIt usually suffices
- Xto make sure that no file being archived is itself a
- X.I zoo
- Xarchive. (Previous versions of
- X.I zoo
- Xsometimes tried to add an
- Xarchive to itself. This bug now seems to be fixed.)
- X.PP
- XOnly regular files are archived; devices and empty directories are not.
- XSupport for archiving empty directories and for preserving directory
- Xattributes is planned for the near future.
- X.PP
- XEarly versions of MS-DOS have a bug that prevents "." from referring
- Xto the root directory; this leads to anomalous results if the
- Xextraction of paths beginning with a dot is attempted.
- X.PP
- XVAX/VMS destroys case information unless arguments are enclosed
- Xin double quotes. For this reason if a command given to
- X.I zoo
- Xon a VAX/VMS system includes any uppercase characters, it must be
- Xenclosed in double quotes. Under VAX/VMS,
- X.I zoo
- Xdoes not currently restore file timestamps; this will be fixed
- Xas soon as I figure out RMS extended attribute blocks, or DEC supplies
- Xa utime() function, whichever occurs first. Other VMS bugs, related to
- Xfile structures, can often be overcome by using the program
- X.I bilf.c
- Xthat is supplied with
- X.I zoo.
- X.PP
- XIt is not currently possible to create a
- X.I zoo
- Xarchive containing all
- X.I zoo
- Xarchives that do not contain themselves.
- X.SH DIAGNOSTICS
- XError messages are intended to be self-explanatory and are divided into
- Xthree categories. WARNINGS are intended to inform the user of an
- Xunusual situation, such as a CRC error during extraction, or
- X.BR \-freshen ing
- Xof an archive containing a file newer than one specified on
- Xthe command line. ERRORS are fatal to one file, but execution
- Xcontinues with the next file if any. FATAL errors cause execution to
- Xbe aborted. The occurrence of any of these causes an exit status of
- X1. Normal termination without any errors gives an exit status of 0.
- X(Under VAX/VMS, however, to avoid an annoying message,
- X.I zoo
- Xalways exits with an error code of 1.)
- X.SH COMPATIBILITY
- XAll versions of
- X.I zoo
- Xon all systems are required to create archives that can
- Xbe extracted and listed with all versions of
- X.I zoo
- Xon all systems, regardless of filename and
- Xdirectory syntax or archive structure; furthermore,
- Xany version of
- X.I zoo
- Xmust be able to fully manipulate all archives
- Xcreated by all lower-numbered versions of
- X.I zoo
- Xon all systems. So far as I can tell, this
- Xupward compatiblity (all manipulations) and downward
- Xcompatiblity (ability to extract and list)
- Xis maintained by
- X.I zoo
- Xversion 2.0.
- XYou are forbidden, with the force of
- Xcopyright law, to create from the
- X.I zoo
- Xsource code any derivative work
- Xthat violates this compatibility goal,
- Xwhether knowingly or through negligence.
- XIf any violation of this
- Xcompatibility goal is observed\(emi.e.,
- Xif you are able to use an implementation of
- X.I zoo
- Xto create an archive
- Xthat some implementation of
- X.I zoo
- Xon any system cannot extract\(emthis should be
- Xconsidered a serious problem and reported to me.
- X.SH CHANGES
- XHere is a list of changes occurring from version 1.50 to
- Xversion 2.01. In parentheses is given the version in which each
- Xchange occurred.
- X.TP
- X\-
- X(1.71) New modifiers to the list commands permit
- Xoptional suppression of header and trailer information,
- Xinclusion of directory names in columnized listings, and
- Xfast one-column listings.
- X.TP
- X\-
- X(1.71) Timezones are handled.
- X.TP
- X\-
- X(1.71) A bug was fixed that had made it impossible to
- Xindividually update comments for a file whose name did
- Xnot correspond to MS-DOS format.
- X.TP
- X\-
- X(1.71) A change was made that now permits use of the
- Xshared library on the **IX PC.
- X.TP
- X\-
- X(1.71) VAX/VMS is now supported reasonably well.
- X.TP
- X\-
- X(2.00) A comment may now be attached to the archive itself.
- X.TP
- X\-
- X(2.00) The \fBOO\fR option allows
- Xforced overwriting of read-only files.
- X.TP
- X\-
- X(2.00) \fIZoo\fR will no longer extract a file if a
- Xnewer copy already exists on disk; the
- X.B S
- Xoption will override this.
- X.TP
- X\-
- X(2.00) File attributes are preserved for **IX systems.
- X.TP
- X\-
- X(2.00) Multiple generations of the same file are supported.
- X.TP
- X\-
- X(2.00) \fIZoo\fR will now act as a compression or
- Xdecompression filter on a stream of data and will
- Xuse a CRC value to check the integrity of a
- Xdata stream that is uncompressed.
- X.TP
- X\-
- X(2.00) A bug was fixed that caused removal of a directory link
- Xif files were moved to an archive by the superuser
- Xon a **IX system.
- X.TP
- X\-
- X(2.00) The data recovery modifier
- X.B @
- Xwas greatly enhanced. Self-extracting archives created for MS-DOS
- Xsystems can now be extracted by
- X.I zoo
- Xon any system with help from
- X.I fiz(1).
- X.TP
- X\-
- X(2.01)
- XA bug was fixed that had caused the first generation of a file
- Xto sometimes unexpectedly show up in archive listings.
- X.TP
- X\-
- X(2.01) A bug was fixed that had caused the MS-DOS version
- Xto silently skip files that could not be extracted because
- Xof insufficient disk space.
- X.TP
- X\-
- X(2.01) A bug was fixed that had sometimes made it impossible to
- Xselectively extract a file by specifying its name, even
- Xthough all files could be extracted from the archive
- Xby not specifying any filenames. This occurred when
- Xa file had been archived on a longer-filename system
- X(e.g. AmigaDOS) and extraction was attempted on a
- Xshorter-filename system (e.g. MS-DOS).
- X.TP
- X\-
- X(2.01) A change was made that will make zoo preserve the mode
- X(file protection) of a zoo archive when it is packed.
- XThis is effective only if zoo is compiled to preserve
- Xand restore file attributes. Currently this is so
- Xonly for **IX systems.
- X.TP
- X\-
- X(2.01)
- XA bug was fixed that had caused an update of an archive to
- Xnot always add all newer files.
- X.TP
- X\-
- X(2.01) Blanks around equal signs in commands given to "make"
- Xwere removed from the mk* scripts for better compatiblity
- Xwith more **IX implementations including Sun's.
- X.SH "FUTURE DIRECTIONS"
- XA revised version of
- X.I zoo
- Xis in the works that will be able to write newly-created archives
- Xto standard output, and will also automatically perform end-of-line
- Xconversion for text files moved between dissimilar systems.
- XIt will be upward and downward compatible with existing versions of
- X.I zoo.
- X.SH ACKNOWLEDGEMENTS
- XThe
- X.I zoo
- Xarchiver was initially developed using Microsoft C 3.0
- Xon a PC clone manufactured
- Xby Toshiba of Japan and almost sold by Xerox. Availability
- Xof the following systems was helpful in achieving portability:
- XPaul Homchick's Compaq running Microport System V/AT; The
- XEskimo BBS somewhere in Oregon running Xenix/68000; Greg Laskin's
- Xsystem 'gryphon' which is an Intel 310 running Xenix/286; Ball
- XState University's AT&T 3B2/300, UNIX PC, and VAX-11/785 (4.3BSD)
- Xsystems. In addition J. Brian Waters provided feedback to
- Xhelp me make the code compilable on his Amiga using
- XManx/Aztec C. More recently, actual development, as
- Xopposed to portability testing, has been done exclusively
- Xon my own AT from PC's Limited running Microport System V/AT.
- XThe executable version 2.0 for MS-DOS is currently
- Xcompiled with Borland's Turbo C 1.0.
- X.PP
- XSpecial thanks are due to:
- X.PP
- XJ. Brian Waters <uunet!bsu-cs!jbwaters>, who has worked
- Xdiligently to port
- X.I zoo
- Xto AmigaDOS, created Amiga-specific code,
- Xand continues keeping it updated.
- X.PP
- XPaul Homchick <rutgers!cgh!paul>, who provided numerous detailed
- Xreports about some nasty bugs.
- X.PP
- XBill Davidsen <steinmetz!crdos1!davidsen>, who fixed
- X.I "zoo's"
- Xhandling of daylight savings time, provided changes to make this
- Xmanual format correctly with
- X.I troff,
- Xand provided many useful bug reports and suggestions.
- X.PP
- XMark Alexander <amdahl!drivax!alexande>, who provided me with some bug
- Xfixes, and also some portability modifications and
- Xspeed optimizations
- Xthat are due to be incorporated into the next release.
- X.SH AUTHOR
- XRahul Dhesi
- END_OF_FILE
- if test 45120 -ne `wc -c <'zoo.1'`; then
- echo shar: \"'zoo.1'\" unpacked with wrong size!
- fi
- # end of 'zoo.1'
- fi
- echo shar: End of archive 10 \(of 10\).
- cp /dev/null ark10isdone
- MISSING=""
- for I in 1 2 3 4 5 6 7 8 9 10 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 10 archives.
- rm -f ark[1-9]isdone ark[1-9][0-9]isdone
- else
- echo You still need to unpack the following archives:
- echo " " ${MISSING}
- fi
- ## End of shell archive.
- exit 0
-